<?php

namespace JsonLowCode\UI;

use JsonLowCode\Schema;
use JsonLowCode\Traits\Props\HasColor;

/**
 * Svg图标组件
 * @method static Icon make(string $name = null) Svg图标组件
 */
class Icon extends Schema
{
    protected string $componentName = "AppIcon";

    use HasColor;

    /**
     * @param mixed|null $name
     */
    public function __construct(string $name = null)
    {
        parent::__construct();
        $this->componentName("AppIcon");
        $name && $this->name($name);
    }

    /**
     * 设置图标名称
     * @param string $name
     * @return $this
     */
    public function name(string $name): static
    {
        return $this->prop("icon",$name);
    }

    /**
     * 设置本地图标名称
     * @param string $name
     * @return $this
     */
    public function localName(string $name): static
    {
        return $this->prop("local-icon",$name);
    }

    /**
     * 设置图标大小
     * @param int|string $size
     * @return $this
     */
    public function size(int|string $size): static
    {
        return $this->prop("size", $size);
    }

    /**
     * 设置图标深度
     * @param string|int $depth 1 | 2 | 3 | 4 | 5
     * @return $this
     */
    public function depth(int|string $depth = 1): static
    {
        return $this->prop("depth", $depth);
    }


}
